<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  <title>安装</title>
<link media="all" rel="stylesheet" type="text/css" href="styles/03e73060321a0a848018724a6c83de7f-theme-base.css" />
<link media="all" rel="stylesheet" type="text/css" href="styles/03e73060321a0a848018724a6c83de7f-theme-medium.css" />

 </head>
 <body class="docs"><div class="navbar navbar-fixed-top">
  <div class="navbar-inner clearfix">
    <ul class="nav" style="width: 100%">
      <li style="float: left;"><a href="openssl.requirements.html">« 需求</a></li>
      <li style="float: right;"><a href="openssl.configuration.html">运行时配置 »</a></li>
    </ul>
  </div>
</div>
<div id="breadcrumbs" class="clearfix">
  <ul class="breadcrumbs-container">
    <li><a href="index.html">PHP Manual</a></li>
    <li><a href="openssl.setup.html">安装/配置</a></li>
    <li>安装</li>
  </ul>
</div>
<div id="layout">
  <div id="layout-content"><div id="openssl.installation" class="section">
 <h2 class="title">安装</h2>
 <p class="para">
  要使用 PHP 的 OpenSSL 支持，你应该使用 <strong class="option configure">--with-openssl[=DIR]</strong> 参数来编译 PHP。
 </p>
 <p class="para">
  OpenSSL 库还在运行时对正常操作有额外的要求。最明显的是，OpenSSL 需要访问随机或伪随机数生成器； 在大多数 Unix 和类 Unix 平台上(包括linux)，意味着它必须要访问
  <code class="literal">/dev/urandom</code> 或者 <code class="literal">/dev/random</code> 设备。
 </p>
 <p class="para">
  <strong class="option configure">--with-system-ciphers</strong> 配置选项可用于设置 PHP 使用系统密码列表，而不是硬编码。
 </p>
 <blockquote class="note"><p><strong class="note">注意</strong>: 
  <strong> Win32 平台的用户请注意</strong><br />
  <p class="para">
   为了使此扩展生效，
<abbr title="Dynamic Link Library">DLL</abbr> 文件必须能在 Windows 系统的
<var class="envar">PATH</var> 指示的路径下找到。如何操作的信息，请参见题为“<a href="faq.installation.html#faq.installation.addtopath" class="link">如何在 Windows 中将 PHP
目录加到 PATH 中</a>”的<abbr title="Frequently Asked Questions">FAQ</abbr>。虽然将
DLL 文件从 PHP 文件夹复制到 Windows 系统目录也行，但不建议这样做。
<em class="emphasis">此扩展需要下列文件在 <var class="envar">PATH</var> 路径中：</em>
   <var class="filename">libeay32.dll</var>，
   或者，自 OpenSSL 1.1 起，为 <var class="filename">libcrypto-*.dll</var>
  </p>
  <p class="para">
   此外，如果打算使用密钥生成和证书签名功能，你需要在你的系统上安装一个可用的 <var class="filename">openssl.cnf</var> 文件。
   在我们的 win32 二进制发行版本中，我们已经包含了一个示例配置文件，在
   <var class="filename">extras/ssl</var> 文件夹中。
  </p>
  <p class="para">
   PHP 将会使用如下逻辑搜索 <var class="filename">openssl.cnf</var> 文件:
   <ul class="itemizedlist">
    <li class="listitem">
     <span class="simpara">如果 <code class="literal">OPENSSL_CONF</code> 环境变量设置了，该变量将会被当作配置文件的路径（含文件名）。
     </span>
    </li>
    <li class="listitem">
     <span class="simpara">如果 <code class="literal">SSLEAY_CONF</code> 环境变量设置了，该变量将会被当作配置文件的路径（含文件名）。
     </span>
    </li>
    <li class="listitem">
     <span class="simpara">假设<var class="filename">openssl.cnf</var> 文件将会在 openssl DLL 被编译时配置的默认证书区域被找到。这通常意味着默认的文件名是 <var class="filename">C:\Program Files\Common Files\SSL\openssl.cnf</var>(x64)
      或者 <var class="filename">C:\Program Files (x86)\Common Files\SSL\openssl.cnf</var> (x86)，而 PHP 7.4.0之前，则是 <var class="filename">C:\usr\local\ssl\openssl.cnf</var>。
     </span>
    </li>
   </ul>
  </p>
  <span class="simpara">
   在你的安装过程中，你需要决定是否将配置文件安装在默认路径或者使用环境变量(可能是基于每个虚拟主机的基础)来定位配置文件安装到其他地方。注意，可以使用引入配置文件的函数中的
   <code class="parameter">options</code> 参数来覆盖脚本中的默认路径。
  </span>
  <div class="caution"><strong class="caution">警告</strong>
   <p class="simpara">
    确保无权限的用户无法修改 <var class="filename">openssl.cnf</var> 文件。
   </p>
  </div>
 </p></blockquote>

 <div class="simplesect">
  <h3 class="title">更新日志</h3>
  <p class="para">
   <table class="doctable informaltable">
    
     <thead>
      <tr>
       <th>版本</th>
       <th>说明</th>
      </tr>

     </thead>

     <tbody class="tbody">
      <tr>
       <td>7.4.0</td>
       <td>
        OpenSSL 默认配置文件的路径已经从 <var class="filename">C:\usr\local\ssl</var>
        分别改至 <var class="filename">C:\Program Files\Common Files\SSL</var> 和
        <var class="filename">C:\Program Files (x86)\Common Files\SSL</var>。
       </td>
      </tr>

     </tbody>
    
   </table>

  </p>
 </div>

</div></div></div></body></html>